package cn.sumpu.app.guoguojie.dao;

import java.util.List;
import java.util.Map;

import cn.sumpu.app.guoguojie.domain.Member;
import cn.sumpu.app.guoguojie.domain.Order;
import cn.sumpu.app.guoguojie.domain.OrderProduct;
import cn.sumpu.app.guoguojie.domain.Product;
import cn.sumpu.app.guoguojie.exception.AppBusinessException;

public interface ProductDao {
	//
	public void insertNewProduct(Product product) throws AppBusinessException;
	//
	public List<Product> selectProductList(Map<String, Object> map)throws AppBusinessException;
	//
	public int countProductList(Map<String, Object> map)throws AppBusinessException;
	//
	public void deleteProductById(String identifier)throws AppBusinessException;
	//
	public Product selectProduct(String identifier)throws AppBusinessException;
	//
	public void updateProductById(Product product)throws AppBusinessException;
	//
	public void insertOrder(Order order) throws AppBusinessException;
	//
	public void insertOrderProduct(OrderProduct orderProduct) throws AppBusinessException;
	//
	public Product selectProductByName(String productName)throws AppBusinessException;
	//
	public List<Order> selectOrderList(Map<String, Object> map)throws AppBusinessException;
	//
	public int selectOrderListCount(Map<String, Object> map)throws AppBusinessException;
	//
	public void updateOrder(Order order)throws AppBusinessException;
	//
	public Order selectViewOrder(String orderId)throws AppBusinessException;
	//
	public void updateOrderProduct(OrderProduct orderProduct)throws AppBusinessException;
	//
	public void updateIsClosed()throws AppBusinessException;
	//
	public Product selectRecommendProduct()throws AppBusinessException;
	//
	public void deleteOrderById(String identifier)throws AppBusinessException;
	//
	public void deleteOrderProductById(String orderId)throws AppBusinessException;
	//
	public List<Member> getOrderMemberList(Map<String, Object> map)throws AppBusinessException;
	//
	public OrderProduct selectOrderProductByOrderId(String orderId)throws AppBusinessException;
}
